import grace from "../../../utils/grace.js";
import {Index} from 'index-model.js';
import {Product} from '../product/product-model.js';

let index = new Index();
let product = new Product();

grace.page({
    /**
     * 页面的初始数据
     */
    data: {
        keywords: '',
        banners: [],
        notices: [],
        advertisements: [],
        themes: [],
        hot_products: [],
        recommend_products: [],
        total: 0,
        page: 1,
        pagesize: 10
    },
    onLoad() {
        let that = this;
        that.update();

        // 查询小程序名称
        index.getShopName({}, (data) => {
            if (data.code == 0) {
                wx.setNavigationBarTitle({
                    title: data.data
                })
            }
        })

        // 查询首页banner
        index.getIndexBanners({'location': 'home_index'}, (data) => {
            if (data.code == 0) {
                this.$data.banners = data.data;
            }
        })

        // 查询公告
        index.getNotices({}, (data) => {
            if (data.code == 0) {
                this.$data.notices = data.data;
            }
        })

        // 查询广告
        index.getIndexAdvertisements({}, (data) => {
            if (data.code == 0) {
                this.$data.advertisements = data.data;
            }
        })

        // 查询首页主题
        index.getIndexThemes({}, (data) => {
            if (data.code == 0) {
                this.$data.themes = data.data;
            }
        })

        // 查询首页热门产品
        product.getProductList({'is_hot': true, 'page': 1, 'pagesize': 20}, (data) => {
            if (data.code == 0) {
                this.$data.hot_products = data.data.list;
            }
        })

        this.getRecommendProduct();
    },
    getRecommendProduct() {
        // 查询首页推荐产品
        product.getProductList({
            'is_recommend': true,
            'page': this.$data.page,
            'pagesize': this.$data.pagesize
        }, (data) => {
            if (data.code == 0) {
                this.$data.total = data.data.total;
                this.$data.page = this.$data.page + 1;
                this.$data.recommend_products = this.$data.recommend_products.concat(data.data.list);
            }
        })
    },
    onReachBottom() {
        if (this.$data.recommend_products.length < this.$data.total) {
            this.getRecommendProduct();
        }
    },
    update() {
        if (wx.canIUse('getUpdateManager')) {
            const updateManager = wx.getUpdateManager()
            updateManager.onCheckForUpdate(function (res) {
                // 请求完新版本信息的回调
                if (res.hasUpdate) {
                    console.log(res.hasUpdate)
                    updateManager.onUpdateReady(function () {
                        wx.showModal({
                            title: '更新提示',
                            content: '新版本已经准备好，是否重启应用？',
                            success: function (res) {
                                if (res.confirm) {
                                    // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                                    updateManager.applyUpdate()
                                }
                            }
                        })
                    })
                    updateManager.onUpdateFailed(function () {
                        // 新的版本下载失败
                        wx.showModal({
                            title: '已经有新版本了哟~',
                            content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
                        })
                    })
                }
            })
        } else {
            // 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
            wx.showModal({
                title: '提示',
                content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
            })
        }
    },
    changeKeywords(e) {
        this.$data.keywords = e.detail.value;
    },
    searchProducts() {
        if (this.$data.keywords == '') {
            wx.showToast({
                title: '请输入查询关键字',
                icon: 'loading',
            })
        }

        wx.navigateTo({
            url: '/pages/mall/product/list?keywords=' + this.$data.keywords
        })
    },
    goPage(e) {
        if (e.currentTarget.dataset.type) {
            wx.switchTab({
                url: e.currentTarget.dataset.link
            })
        } else {
            wx.navigateTo({
                url: e.currentTarget.dataset.link
            })
        }
    }
})